﻿using System;
using System.Collections.Generic;
using System.Text;

namespace Integrator.DAL.MESSAGE
{
    public class CasaTransHistoryEnquiryResponse : BaseResponse
    {

        /// <summary>
        /// Account holding branch code	
        /// Mã chi nhánh quản lý tài khoản
        /// </summary>
        public string res_Br_Cd;

        /// <summary>
        /// Customer's account no	
        /// Số tài khoản khách hàng
        /// </summary>
        public string res_Acc_No;

        /// <summary>
        /// Account Holder name	
        /// Tên chủ tài khoản
        /// </summary>
        public string res_Acc_Name;

        /// <summary>
        /// Current Ledger Balance in the account.	
        /// Số dư tài khoản GL hiện tại 
        /// </summary>
        public decimal res_Curr_Bal;

        /// <summary>
        /// The available balance in the account	
        /// Số dư khả dụng trên tài khoản
        /// </summary>
        public decimal res_Avail_Bal;

        /// <summary>
        /// Opening balance for this period	
        /// Số dư đầu cho khoảng thời gian này
        /// </summary>
        public decimal res_Open_Bal;

        /// <summary>
        /// Iteration count of the Deposit History	
        /// Số lượng lặp lại của lịch sử tiền gửi
        /// </summary>
        public int res_Txn_Cnt;

        /// <summary>
        /// Thong tin chi tiet cac truong bi lap
        /// </summary>
        public List<CasaTransHistoryEnquiryResDetail> CasaTransHistoryEnquiryDetailList = null;

        protected override void FromStringToDetail(string message)
        {
            if (CasaTransHistoryEnquiryDetailList == null)
            {
                CasaTransHistoryEnquiryDetailList = new List<CasaTransHistoryEnquiryResDetail>();
            }

            CasaTransHistoryEnquiryResDetail detail = new CasaTransHistoryEnquiryResDetail();
            detail.FromString(message);
            CasaTransHistoryEnquiryDetailList.Add(detail);
        }

        protected override void SaveDetail(long parentId)
        {
            foreach (CasaTransHistoryEnquiryResDetail detail in CasaTransHistoryEnquiryDetailList)
            {
                detail.Save(parentId);
            }
        }

        protected override bool IsDetailProperty(string propertyName)
        {
            return new CasaTransHistoryEnquiryResDetail().IsPropertyOf(propertyName);
        }

        public override string ToString()
        {
            string result = base.ToString();
            foreach (CasaTransHistoryEnquiryResDetail detail in CasaTransHistoryEnquiryDetailList)
            {
                result += detail.ToString();
            }
            return result;
        }

    }
}
